package com.tarena.lbs.message.web.service.impl;

import com.tarena.lbs.common.passport.principle.UserPrinciple;
import com.tarena.lbs.common.security.utils.LbsSecurityContenxt;
import com.tarena.lbs.message.web.mapper.TriggerMsgTemplateMapper;
import com.tarena.lbs.message.web.service.TriggerMsgTemplateService;
import com.tarena.lbs.pojo.message.dos.TriggerMsgTemplate;
import com.tarena.lbs.pojo.message.param.TriggerMsgTemplateInsertParam;
import com.tarena.lbs.pojo.message.param.TriggerMsgTemplateUpdateParam;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

/**
 * 触发消息模板服务实现类
 */
@Service
public class TriggerMsgTemplateServiceImpl implements TriggerMsgTemplateService {

    @Resource
    TriggerMsgTemplateMapper triggerMsgTemplateMapper;

    /**
     * 新增触发消息模板
     *
     * @param triggerMsgTemplateInsertParam 触发消息模板参数
     * @return 是否新增成功
     */
    @Override
    public Boolean insert(TriggerMsgTemplateInsertParam triggerMsgTemplateInsertParam) {
        UserPrinciple loginUser = LbsSecurityContenxt.getLoginToken();
        if (loginUser != null) {
            triggerMsgTemplateInsertParam.setBussinessId(loginUser.getId());
        }
        TriggerMsgTemplate triggerMsgTemplate = new TriggerMsgTemplate();
        BeanUtils.copyProperties(triggerMsgTemplateInsertParam, triggerMsgTemplate);
        int insertRows = triggerMsgTemplateMapper.insert(triggerMsgTemplate);
        return insertRows >= 1 ? true : false;
    }

    /**
     * 查询所有触发消息模板
     *
     * @return 触发消息模板列表
     */
    @Override
    public List<TriggerMsgTemplate> selectAll() {
        List<TriggerMsgTemplate> list = triggerMsgTemplateMapper.selectAll();
        return list;
    }

    /**
     * 根据ID更新触发消息模板
     *
     * @param triggerMsgTemplateUpdateParam 触发消息模板参数
     * @return 是否更新成功
     */
    @Override
    public Boolean UpdateById(TriggerMsgTemplateUpdateParam triggerMsgTemplateUpdateParam) {
        TriggerMsgTemplate triggerMsgTemplate = new TriggerMsgTemplate();
        BeanUtils.copyProperties(triggerMsgTemplateUpdateParam, triggerMsgTemplate);
        int row = triggerMsgTemplateMapper.updateByPrimaryKeySelective(triggerMsgTemplate);
        return row >= 1 ? true : false;
    }

    /**
     * 根据ID删除触发消息模板
     *
     * @param id 触发消息模板ID
     * @return 是否删除成功
     */
    @Override
    public Boolean deleteById(Long id) {
        int row = triggerMsgTemplateMapper.deleteByPrimaryKey(id);
        return row >= 1 ? true : false;
    }
}
